package com.whfc.wxmp.api.mach.v1.service;

import com.whfc.common.result.ListData;
import com.whfc.entity.dto.WxDeviceBindCheckDTO;
import com.whfc.fuum.entity.WxUser;
import com.whfc.mach.dto.AppMachDTO;
import com.whfc.mach.param.*;

import java.util.Date;

/**
 * @author sun_guodong
 * @description 小程序设备接口
 * @date 2020-11-17
 */
public interface WxmpMachService {
    /**
     * 查询设备信息
     *
     * @param machId
     * @return
     */
    AppMachDTO getMachInfo(Integer machId);

    /**
     * 添加并绑定设备
     *
     * @param wxUser
     * @param param
     */
    void add(WxUser wxUser, WxMachAddParam param);

    /**
     * 编辑设备
     *
     * @param param
     */
    void edit(MachEditParam param);

    /**
     * 小程序删除设备
     *
     * @param machId
     */
    void delMach(Integer machId);

    /**
     * 已有设备绑定硬件
     *
     * @param user
     * @param request
     */
    void bindDevice(WxUser user, DeviceMachBindParam request);

    /**
     * 设备解绑硬件
     *
     * @param user
     * @param machId
     */
    void unbindDevice(WxUser user, Integer machId);

    /**
     * 校验sn
     *
     * @param sn
     * @return
     */
    WxDeviceBindCheckDTO bindCheck(String sn);

    /**
     * 设备标定加油量
     *
     * @param param
     */
    void setOilAdd(MachSetOilAddParam param);

    /**
     * 获取标定加油量详情
     *
     * @param machId
     * @param date
     * @return
     */
    ListData<MachOilAdd> getOilAdd(Integer machId, Date date);
}
